#include "serialportmonitorthread.h"
#include <QDebug>
SerialPortMonitorThread::SerialPortMonitorThread(QSerialPort *serialPort, QObject *parent):
    QThread(parent),serialPort(serialPort),checkInterval(1000) {
}
SerialPortMonitorThread::~SerialPortMonitorThread()
{
    // 确保线程退出时清理
    quit();
    wait();
}

void SerialPortMonitorThread::run()
{
    while (true) {
        if (!serialPort->isOpen()) {
            qDebug() << "串口连接丢失:SerialPortMonitorThread";
            emit connectionLost();  // 串口断开，发出信号
            return;  // 串口断开，退出线程
        }
        // 检查是否有串口错误
        if (serialPort->error() != QSerialPort::NoError) {
            qDebug() << "串口错误: SerialPortMonitorThread" << serialPort->errorString();
            emit connectionLost();  // 串口错误，发出信号
            return;  // 串口断开，退出线程
        }
        QThread::msleep(checkInterval);  // 休眠一段时间，避免频繁检查
    }
}
